[XEND] Cleanup old domains in statistics monitor.
authorAlastair Tse <atse@xensource.com>
Wed, 24 Jan 2007 15:50:58 +0000 (15:50 +0000)
committerAlastair Tse <atse@xensource.com>
Wed, 24 Jan 2007 15:50:58 +0000 (15:50 +0000)
Signed-off-by: Alastair Tse <atse@xensource.com>
tools/python/xen/xend/XendMonitor.py

index 134cca4365761dd21dba73d937d65dd7aa493cb1..855cff216c68e57dc7e45cb1db442c86eac38014 100644 (file)
@@ -220,10 +220,11 @@ class XendMonitor(threading.Thread):
         while True:
             self.lock.acquire()
             try:
-            
+                active_domids = set()
                 # Calculate utilisation for VCPUs
                 
                 for domid, cputimes in self._get_cpu_stats().items():
+                    active_domids.add(domid)
                     if domid not in self._domain_vcpus:
                         # if not initialised, save current stats
                         # and skip utilisation calculation
@@ -310,6 +311,19 @@ class XendMonitor(threading.Thread):
                     self.pifs_util[pifid] = (rx_util, tx_util)
                     self.pifs[pifid] = stats
 
+                for domid in self.domain_vcpus_util.keys():
+                    if domid not in active_domids:
+                        del self.domain_vcpus_util[domid]
+                        del self.domain_vcpus[domid]
+                for domid in self.domain_vifs_util.keys():
+                    if domid not in active_domids:
+                        del self.domain_vifs_util[domid]
+                        del self.domain_vifs[domid]
+                for domid in self.domain_vbds_util.keys():
+                    if domid not in active_domids:
+                        del self.domain_vbds_util[domid]
+                        del self.domain_vbds[domid]
+
             finally:
                 self.lock.release()